package com.study.kt.skills

import java.util.*

/**
 * <pre>
 *     author : slx
 *     time   : 2021/02/07
 *     desc   :
 * </pre>
 */
fun main() {
    val name = "fAuks"
    // 使用toLowerCase、toUpperCase会创建临时变量
    // 如果在使用比较字符串忽略大小写时不推荐使用，而是使用equals，ignoreCase，该方式不会创建临时对象
    println(name.toUpperCase(Locale.ROOT) == "fauks")
    println(name.equals("fauks", ignoreCase = true))

    // 处理空字符串,使用isEmpty不够优雅
    val desc = ""
    val fDesc = if (desc.isEmpty()) "fauks" else desc

    // 使用ifEmpty，如果desc不为空返回desc，为空返回表达式值
    val fDesc2 = desc.ifEmpty {
        "fauks"
    }

    // string to int
    val num = "12a"
    // 如果num为空，则异常
    // println(num.toInt())
    // 如果num转换int失败，则返回null,结合?: 如果为null赋值0
    println(num.toIntOrNull() ?: 0)

    // 移除添加前后缀
    val data = listOf("java", "kotlin", "flutter")
            .joinToString(separator = "|", prefix = "{", postfix = "]")
    println(data)

    val str = "**fauks**"
    println(str.removePrefix("**")) // 去除前缀 fauks**
    println(str.removeSuffix("**")) // **fauks
    println(str.removeSurrounding("**")) //fauks
    println(str.substringAfter("**")) // 返回第一次出现指定字符串后面的字符 fauks**,如果没有找到返回原字符串

}